今天要介紹在React Component中加入CSS的方式。
render() {
let className = 'menu';
if (this.props.isActive) {
className += ' menu-active';
}
return <span className={className}>Menu</span>
}
除了用CSS中的Keyframe製作動畫效果外,也可以使用前人寫好的React動畫套件,以下用react-transition-group作介紹:
npm install react-transition-group --save
安裝完後,可以看到官方文件裡面有介紹幾個重要的Component。
引入欲使用的Component。
import { CSSTransition } from 'react-transition-group'
return (
<div>
<CSSTransition in={inProp} timeout={200} classNames="my-node">
<div>
{"I'll receive my-node-* classes"}
</div>
</CSSTransition>
</div>
);
}
除了使用套件裡面附的動畫效果外,也可以自訂義一個動畫效果,下列為動畫進入時狀態改變的屬性:
.my-node-enter {
opacity: 0;
}
.my-node-enter-active {
opacity: 1;
transition: opacity 200ms;
}
.my-node-exit {
opacity: 1;
}
.my-node-exit-active {
opacity: 0;
transition: opacity 200ms;
}